package com.meimeixia.pattern.factory.factory_method;

/**
 * 咖啡店
 */
public class CoffeeStore {

    private CoffeeFactory factory; // 依赖于抽象（即CoffeeFactory），而没有依赖于具体

    public void setFactory(CoffeeFactory factory) {
        this.factory = factory;
    }

    // 点咖啡功能。注意，这儿不再需要创建具体工厂对象了，而是会从客户端传递进来
    public Coffee orderCoffee() {
        Coffee coffee = factory.createCoffee();
        // 加配料
        coffee.addMilk();
        coffee.addSugar();
        return coffee;
    }
}
